home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / msdos / tlb_v231.zip / LASTBYTE.DOC < prev    next >
Text File  |  1993-11-06  |  95KB  |  2,463 lines

  1.  
  2.  
  3.         
  4.  
  5.  
  6.                         THE LAST BYTE MEMORY MANAGER (tm)
  7.  
  8.                        An Upper Memory Manager for MS-DOS
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.                                   Version 2.31
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.                               Copyright (C) 1990-92
  31.                                All Rights Reserved
  32.  
  33.  
  34.                                        by
  35.  
  36.  
  37.                               KEY SOFTWARE PRODUCTS
  38.  
  39.                                 440 Ninth Avenue
  40.                           Menlo Park, California 94025
  41.                                   415-364-9847
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.         The Last Byte Memory Manager is a trademark of Key Software Products.
  53.          MS-DOS and Windows 3.0 are trademarks of Microsoft Corporation.
  54.              DR-DOS is a trademark of Digital Research Incorporated.
  55.                       4DOS is a trademark of J.P. Software.
  56.                      Hyperdisk is a trademark of HyperWare.
  57.  
  58.  
  59.  
  60.         
  61.  
  62.  
  63.                                 TABLE OF CONTENTS
  64.  
  65.  
  66.  
  67.         CHAPTER 1 - INTRODUCTION        ...........................    1
  68.            1.1  Seven Important Advantages      ...................    1
  69.  
  70.         CHAPTER 2 - GETTING A QUICK START     .....................    3
  71.            2.1  Checking Compatibility Using CHIPSET     ..........    3
  72.            2.2  Making a Demo Diskette for Testing   ..............    3
  73.            2.3  Viewing Upper Memory with HIGHMEM    ..............    5
  74.  
  75.         CHAPTER 3 - LASTBYTE.SYS COMMAND LINE OPTIONS     .........    7
  76.            3.1  BANKSWITCH=<base>:<size>        ...................    7
  77.            3.2  CACHE=<kbytes>        .............................    8
  78.            3.3  DOS=<base>:<size>        ..........................    8
  79.            3.4  EXCLUDE=<base>:<size>        ......................    8
  80.            3.5  KEY=<AccessKey>        ............................    8
  81.            3.6  MOVE=VIDEOBIOS        .............................    9
  82.            3.7  MOVE=MAINBIOS        ..............................    9
  83.               3.7.1  The ADDHOLES suboption      ..................    9
  84.            3.8  MOVE=OVERLAY        ...............................    9
  85.            3.9  MOVE=XBDA        ..................................    9
  86.            3.10  NAME=<RegisteredUserName>        .................    9
  87.            3.11  PHYSICAL=<MemoryController>        ...............   10
  88.               3.11.1  The OVERRIDE suboption      .................   10
  89.               3.11.2  The NOEMS suboption      ....................   10
  90.               3.11.3  The FRAME suboption      ....................   10
  91.            3.12  RESTRICT=<ab> <cd> <ef>      .....................   11
  92.            3.13  SHADOW=<base>:<size>        ......................   12
  93.            3.14  The ? (question mark) Option    ..................   12
  94.  
  95.         CHAPTER 4 - HIGHDRVR AND HIGHTSR COMMAND LINE OPTIONS   ...   13
  96.            4.1  HIGHDRVR Command Line Syntax     ..................   13
  97.            4.2  HIGHTSR Command Line Syntax     ...................   13
  98.            4.3  The /SIZE Option      .............................   14
  99.            4.4  Measuring Load Requirements Using /SIZE    ........   14
  100.            4.5  Achieving Best Fit Using /SIZE:n1    ..............   15
  101.            4.6  Borrowing Memory Using /SIZE:n1 n2    .............   15
  102.            4.7  The /LOW Option      ..............................   16
  103.            4.8  The /RESTRICT Option      .........................   16
  104.            4.9  The /!NOPAUSE Option      .........................   16
  105.            4.10  The /NOENV Option (HIGHTSR only)    ..............   17
  106.  
  107.         CHAPTER 5 - HIGHUMM.SYS: A UMB PROVIDER     ...............   19
  108.            5.1  The /REPLACE Option      ..........................   19
  109.            5.2  The /NOSPLIT Option      ..........................   19
  110.            5.3  The /RESTRICT Option      .........................   20
  111.            5.4  Limiting UMB Memory      ..........................   20
  112.  
  113.         CHAPTER 6 - HIGHDUBL.SYS: A REPLACEMENT FOR DBLSPACE.SYS      21
  114.            6.1  The /MOVE Option      .............................   21
  115.            6.2  The /RESTRICT Option      .........................   21
  116.  
  117.  
  118.  
  119.  
  120.         
  121.  
  122.  
  123.                                 TABLE OF CONTENTS
  124.  
  125.  
  126.         CHAPTER 7 - SPECIAL CONSIDERATIONS       ..................   22
  127.            7.1  Specifying Command Line Options with Indirect Files   22
  128.            7.2  Using the DOS=F000:32 Option     ..................   22
  129.            7.3  Video Display RAM above 640k    ...................   23
  130.            7.4  Video Adapter Bios ROMs     .......................   24
  131.            7.5  LASTBYTE.SYS and Expanded Memory     ..............   24
  132.            7.6  Fine-Tuning your Adapter Hardware Configuration       25
  133.  
  134.         CHAPTER 8 - USE WITH OTHER SOFTWARE     ...................   27
  135.            8.1  Microsoft's FASTOPEN and MODE programs    .........   27
  136.            8.2  Microsoft's SHARE program      ....................   27
  137.            8.3  Microsoft's MS-DOS 5.0      .......................   28
  138.               8.3.1  Using DEVICEHIGH and LOADHIGH     ............   29
  139.               8.3.2  Using HIGHDRVR and HIGHTSR     ...............   29
  140.            8.4  Microsoft Windows       ...........................   30
  141.               8.4.1  Modifying the Windows SYSTEM.INI File    .....   30
  142.               8.4.2  Positioning an EMS Page Frame    .............   31
  143.               8.4.3  "Unsupported Data Configuration"      ........   31
  144.               8.4.4  HIGHMEM and Windows 386 Enhanced Mode   ......   32
  145.            8.5  HyperWare's HyperDisk       .......................   32
  146.            8.6  J.P. Software's 4DOS      .........................   32
  147.            8.7  David Hamilton's BUFFIT      ......................   33
  148.            8.8  Charles Lazo's WAS      ...........................   33
  149.            8.9  Philip Gardner's DOSMAX      ......................   33
  150.               8.9.1  Trashed Floppy Diskettes      ................   34
  151.  
  152.         APPENDIX 1 - HOW TO REACH US     ..........................   35
  153.  
  154.         APPENDIX 2 - ACKNOWLEDGEMENTS        ......................   37
  155.  
  156.         APPENDIX 3 - LIMITED WARRANTY       .......................   38
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.         
  181.  
  182.  
  183.  
  184.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)               1
  185.  
  186.  
  187.                         CHAPTER 1 - INTRODUCTION        
  188.  
  189.  
  190.         The  Last  Byte  Memory  Manager is a collection of software that
  191.         can  provide  up to 384k of additional memory to your computer in
  192.         the  upper  memory  area between 640k and 1 meg.  It does this by
  193.         using  shadow ram memory, existing fixed read/write (RAM) memory,
  194.         or by mapping expanded memory (EMS) pages into the upper area.  
  195.  
  196.         With  The Last Byte Memory Manager, device drivers, terminate and
  197.         stay  resident  (TSR)  programs,  and  more  can be moved up into
  198.         upper  memory,  leaving  more  conventional  memory available for
  199.         your  application  programs.  Depending on your hardware, you may
  200.         also  be  able  to extend the total conventional memory from 640k
  201.         to as much as 736k.  
  202.  
  203.         The  Last  Byte  Memory  Manager  package  also  includes several
  204.         advanced  utility  programs that can move the master environment,
  205.         DOS  FILES,  DOS  BUFFERS  into  upper  memory.   Other  advanced
  206.         utilities  create  ram disks, print spoolers, command line recall
  207.         (history)  buffers,  emulated  expanded memory, and TSR "markers"
  208.         (to  facilitate  TSR  removal).  Best of all, these utilities can
  209.         even  use  shadow  ram memory which has been disabled (refered to
  210.         as  "Bank-Switch"  memory) by the presence of the display buffer,
  211.         unshadowed read-only memories (ROMs), and other adapter cards.  
  212.  
  213.  
  214.         1.1 Seven Important Advantages       
  215.  
  216.         The  Last Byte Memory Manager offers seven significant advantages
  217.         over other MS-DOS Upper Memory Managers: 
  218.  
  219.              1.  The  Last  Byte Memory Manager leaves no "stubs" in
  220.                  conventional memory.  
  221.  
  222.              2.  The  Last  Byte  Memory  Manager will work with any
  223.                  processor  chip, even the 8088 used in the original
  224.                  IBM  PC.  Many memory managers require a 386 cpu or
  225.                  better.  
  226.  
  227.              3.  The  Last Byte Memory Manager doesn't use protected
  228.                  mode.   Unlike  those  memory managers that do, The
  229.                  Last  Byte  Memory  Manager  is  totally compatible
  230.                  with   any   protected   mode  software,  not  just
  231.                  Microsoft Windows.  
  232.  
  233.              4.  The  Last  Byte  Memory Manager doesn't require any
  234.                  extended  memory.   Some  memory managers depend on
  235.                  the  processor's  ability  to remap physical memory
  236.                  from above 1MB into the upper memory area.  
  237.  
  238.  
  239.  
  240.  
  241.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  242.  
  243.  
  244.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)               2
  245.  
  246.  
  247.              5.  On  motherboards  that  use  one  of  the supported
  248.                  memory  controller  chips,  The  Last  Byte  Memory
  249.                  Manager,  unlike all other memory managers, can use
  250.                  the  unused  shadow  ram  normally  disabled by the
  251.                  display  buffer,  unshadowed ROMs or adapter cards.
  252.                  This  gives  it  the unique ability to use all 384k
  253.                  of upper memory! 
  254.  
  255.              6.  The  Last  Byte  Memory  Manager does not slow down
  256.                  the  performance  of your computer, because it does
  257.                  not  incur the 5-10% execution overhead inherent in
  258.                  protected mode.  
  259.  
  260.              7.  On  motherboards  that  use  one  of  the supported
  261.                  memory  controller  chips,  The  Last  Byte  Memory
  262.                  Manager   can   extend  conventional  memory  using
  263.                  regular  full-speed  motherboard memory rather than
  264.                  using  the  EGA/VGA  display  buffer.  (The display
  265.                  buffer  memory of some EGA/VGA adapter cards can be
  266.                  as much as six times slower than regular memory.)  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  302.  
  303.  
  304.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)               3
  305.  
  306.  
  307.                      CHAPTER 2 - GETTING A QUICK START     
  308.  
  309.  
  310.         The  first  thing  to  do is to be sure that The Last Byte Memory
  311.         Manager   will   work   on  your  computer.   Fundamentally,  the
  312.         requirements  are  DOS  version  3.1  or later and some method of
  313.         implementing  memory  in the upper memory area between 640k and 1
  314.         meg.    Any   Intel  (or  Intel-compatible)  processor  will  do,
  315.         including  the  original  Intel  8088 cpu.  No extended memory is
  316.         required.  
  317.  
  318.  
  319.         2.1 Checking Compatibility Using CHIPSET      
  320.  
  321.         The  CHIPSET  program  is  designed to determine if The Last Byte
  322.         Memory   Manager  is  compatible  with  your  computer.   To  run
  323.         CHIPSET, simply enter its name on the command line: 
  324.  
  325.                 A>CHIPSET 
  326.  
  327.         If  successful, CHIPSET will give you the option of automatically
  328.         linking  to  the INSTALL program to either create a demo diskette
  329.         (as  described  below)  or  to  install the software on your hard
  330.         disk.   For  more detailed information on the CHIPSET program and
  331.         system requirements, consult the file CHIPSET.DOC.  
  332.  
  333.  
  334.         2.2 Making a Demo Diskette for Testing    
  335.  
  336.         To  install The Last Byte Memory Manager on a floppy diskette for
  337.         testing, perform the following three steps: 
  338.  
  339.              Step 1:  Use  the  MS-DOS  FORMAT  command  with the /S
  340.                       option  to  prepare  a  bootable  floppy disk.
  341.                       You will need this in Step 2.  
  342.  
  343.              Step 2:  Run  the  CHIPSET program.  If it succeeds, it
  344.                       will  ask  you "Do you want to run the INSTALL
  345.                       program  now?".  Answer yes.  When it displays
  346.                       the  first  screen  of  the  INSTALL  program,
  347.                       select   the   first   option,   "Creating   a
  348.                       demonstration   diskette"   and   follow   the
  349.                       prompts.  
  350.  
  351.              Step 3:   Once  you  have  created  your  demonstration
  352.                       diskette,  press  Ctrl-Alt-Del  to reboot your
  353.                       computer from the diskette.  
  354.  
  355.         When  your  computer  reboots,  LASTBYTE.SYS  will  pause  thirty
  356.         seconds  and  then  require a keypress to proceed.  The pause and
  357.         the  keypress are removed when you purchase and install an access
  358.  
  359.  
  360.  
  361.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  362.  
  363.  
  364.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)               4
  365.  
  366.  
  367.         key   (see   ORDERFRM.DOC).    There   are,   however,  no  other
  368.         restrictions   on   the  unlicensed  version  -  it  is  a  fully
  369.         functional version of the software.  
  370.  
  371.         If  everything  goes ok during the boot, you'll see a sign-on box
  372.         that looks something like the following: 
  373.  
  374.       ╔═══════════════════════════════════════════════════════════════════╗
  375.       ║         THE LAST BYTE MEMORY MANAGER (tm) Version 2.31a           ║
  376.       ║ Copyright (C) 1990-92, Key Software Products, All Rights Reserved ║
  377.       ║    « You can LICENSE a copy of this software for only $29.95! »   ║
  378.       ╟───────────────────────────────────────────────────────────────────╢
  379.       ║     50.0 Mhz 80486 with 256KB Cache and OPTi Electronics 82C495   ║
  380.       ╟───────────────────────────────────────────────────────────────────╢
  381.       ║  Address Range  Size    Width    Bandwidth    Description         ║
  382.       ║                256 KB 128 bits 200.0 MB/Sec   Secondary CPU Cache ║
  383.       ║   00000-9FFFF  640 KB  32 bits  97.6 MB/Sec   Conventional Memory ║
  384.       ║   C0000-EFFFF  192 KB  32 bits  97.6 MB/Sec   Shadow Ram Memory   ║
  385.       ║   A0000-AFFFF   64 KB  16 bits   1.7 MB/Sec   VGA Graphics Buffer ║
  386.       ║   B8000-BFFFF   32 KB  16 bits   1.7 MB/Sec   VGA Color Text Bfr  ║
  387.       ║   C0000-C7FFF   32 KB   8 bits   1.2 MB/Sec   VGA Adapter Bios    ║
  388.       ║   C8000-C97FF    6 KB   8 bits   1.2 MB/Sec   Fixed Disk Bios     ║
  389.       ║   C9800-C9BFF    1 KB   8 bits   1.2 MB/Sec   Fixed Disk Ram      ║
  390.       ║   F0000-FFFFF   64 KB   8 bits   2.0 MB/Sec   AMI Bios (06/06/91) ║
  391.       ╟───────────────────────────────────────────────────────────────────╢
  392.       ║ Conv:640k High-DOS:144k Bank-Switch:16k Shadowed:96k Excluded:128k║
  393.       ╟───────────────────────────────────────────────────────────────────╢
  394.       ║ The Last Byte Memory Manager is a trademark of Key Software Prod. ║
  395.       ╚═══════════════════════════════════════════════════════════════════╝
  396.  
  397.         If  your computer stops before displaying the box shown above, or
  398.         if  it  fails  to  operate  properly after booting, there are two
  399.         possible reasons: 
  400.  
  401.              1.  CHIPSET  identified  the  wrong  memory controller.
  402.                  Try  running  CHIPSET again, and this time manually
  403.                  test  each of the menu options, noting if more than
  404.                  one  chipset  is  identified.   If so, then run the
  405.                  INSTALL   program   again  for  one  of  the  other
  406.                  chipsets that it finds.  
  407.  
  408.              2.  The  Last  Byte  Memory Manager failed to recognize
  409.                  one  of  your  installed  adapters  that  uses some
  410.                  portion  of  the  upper  memory  address space.  If
  411.                  this  happens,  you'll  probably  need  to  use  an
  412.                  EXCLUDE  option on the LASTBYTE.SYS command line to
  413.                  manually  disable the corresponding region(s) where
  414.                  conflict occurs.   
  415.  
  416.         To  temporarily  get  around  either  of  these problems, you can
  417.         reboot  and manually bypass execution of all The Last Byte Memory
  418.  
  419.  
  420.  
  421.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  422.  
  423.  
  424.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)               5
  425.  
  426.  
  427.         Manager  software  by  simultaneously holding down the <alt> key,
  428.         the  <ctrl>  key,  and either the <leftshift> or <rightshift> key
  429.         during the boot sequence.  
  430.  
  431.         If  The  Last  Byte  Memory  Manager  installs  and  AUTOEXEC.BAT
  432.         finishes  properly,  then  your  display  will be filled with the
  433.         output  of  the  HIGHMEM  program  and  the  current time will be
  434.         displayed  in  inverse video in the upper left-hand corner.  This
  435.         verifies  that  HIGHTSR  has  successfully loaded both the device
  436.         driver  ANSI.SYS  and the TSR program CLOCK.EXE into upper memory
  437.         and that they are operating properly.  
  438.  
  439.         To exit from HIGHMEM, simply press the Esc key.  
  440.  
  441.         Once  you  are  convinced  that  The  Last Byte Memory Manager is
  442.         working  satisfactorily,  you may install it on your hard disk by
  443.         making drive C: the current drive by entering 
  444.  
  445.                 C: 
  446.  
  447.         and rerunning CHIPSET or INSTALL.  
  448.  
  449.  
  450.         2.3 Viewing Upper Memory with HIGHMEM     
  451.  
  452.         Depending  on  what  adapter  cards you have installed, HIGHMEM's
  453.         output should look something like that shown below.  
  454.  
  455.         Bracketed  numbers  in  the  High-DOS  column (e.g., "[141,136]")
  456.         indicate  free  memory  that  is  available for additional device
  457.         drivers  and TSRs.  Bracketed numbers in the "Bank-Switch" column
  458.         (if  any)  indicate  free  memory that can be used by some of the
  459.         advanced  utilities  contained  in  the  file  TLB-A231.ZIP; this
  460.         memory  can  be  used  to  implement a ram disk, a print spooler,
  461.         emulated EMS memory, or TSR markers.  
  462.  
  463.         Note:  HIGHMEM  automatically  senses whether you have a color or
  464.         monochrome  display  to  determine  how  to  present  data on the
  465.         screen.   However,  you may force the mode using one of the /MONO
  466.         or /COLOR command line options.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  482.  
  483.  
  484.       Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)               6
  485.  
  486.  
  487.       HIGHMEM v2.31a (C) Key Software Products 1990-92. All Rights Reserved.
  488.  
  489.       MCB  Hex Address Description [Type] <Mark> High-DOS Bnk-Swtch  Total
  490.       ──── ─────────── ───────────────────────── ──────── ───────── ───────
  491.       CC00 A0000-CBFFF Reserved Memory Group
  492.       CC02 A0000-AFFFF ╠═16-bit VGA Graphics Buffer                  65,536
  493.       CC04 B0000-B7FFF ╠═Unavailable                                 32,768
  494.       CC06 B8000-BFFFF ╠═16-bit VGA Color Text Buffer                32,768
  495.       CC08 C0000-C7FFF ╠═Shadowed 8-bit VGA Bios Rom                 32,768
  496.       CC0A C8000-C97FF ╠═8-bit Fixed Disk Adapter Bios    [  6,144][  6,144]
  497.       CC0C C9800-C9BFF ╠═8-bit Fixed Disk Adapter Ram     [  1,024][  1,024]
  498.       CC0E C9C00-CBFFF ╚═DOS Unusable                     [  9,216][  9,216]
  499.       CC10 CC110-CC54F LASTBYTE    [DEV]           1,088              1,088
  500.       CC55 CC560-CD5BF ANSI        [DEV]           4,192              4,192
  501.       CD5C CD5D0-CD6CF CLOCK       [ENV]             256                256
  502.       CD6D CD6E0-CD88F CLOCK       [TSR]             432                432
  503.       CD89 CD8A0-EFFEF [∙∙∙Free∙∙∙]             [141,136]          [141,136]
  504.       EFFF F0000-FFFFF Shadowed 8-bit AMI Bios Main Bios             65,536
  505.                                                  ───────   ───────  ───────
  506.                             Upper Memory In Use:   5,968         0  235,344
  507.                             [Free Upper Memory]: 141,136    16,384  157,520
  508.                                    MCB Overhead:     352       n/a      352
  509.                             [No HMA Configured]  ───────   ───────  ───────
  510.                              Total Upper Memory: 147,456    16,384  393,216
  511.  
  512.         The  following  article  provides  an excellent definition of the
  513.         various   kinds   of  memory,  such  as  conventional,  extended,
  514.         expanded,  high,  and  upper.   More  important,  however, is its
  515.         discussion  of  how  various  adapter cards make use of the upper
  516.         address  space,  and  may  provide  some insight if you're having
  517.         problems   getting  The  Last  Byte  Memory  Manager  to  install
  518.         properly: 
  519.  
  520.              Barry  Simon,  "How  to Get the Most from Your System's
  521.              High  DOS Memory", PC Magazine, Vol. 9, No. 10 (May 29,
  522.              1990), pp. 347-358.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  542.  
  543.  
  544.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)               7
  545.  
  546.  
  547.                CHAPTER 3 - LASTBYTE.SYS COMMAND LINE OPTIONS     
  548.  
  549.  
  550.         During  initialization,  LASTBYTE.SYS  scans upper memory looking
  551.         for  Bios  ROMs, the video display buffer, and adapter cards that
  552.         use  some  portion  of  the  upper  memory address space.  Of the
  553.         upper  memory  available on your computer, the unoccupied portion
  554.         defaults  to  High-DOS  memory, and the occupied portion defaults
  555.         to Bank-Switch memory.  
  556.  
  557.         These  defaults  can  be  modified  by  the  use  of command line
  558.         options.    There   are   several   command   line   options  for
  559.         LASTBYTE.SYS.  Many of these use a format like: 
  560.  
  561.                 <keyword>=<base>:<size> 
  562.  
  563.         where  <keyword>  is  one  of  the  option  keywords  and  may be
  564.         abbreviated   by   its  first  letter,  <base>  is  a  four-digit
  565.         hexadecimal  segment  address  in  the  range  A000  to FC00, and
  566.         <size> is a decimal number in kilobytes.  
  567.  
  568.         There are two restrictions on these options: 
  569.  
  570.              1.  The  base  must  be  exactly  4 hexadecimal digits,
  571.                  must  lie  at or above A000, and must be a multiple
  572.                  of 0020 (512 bytes), and 
  573.  
  574.              2.  The size must be in the range 1-384 kb.  
  575.  
  576.         The  "multiple  of 0020" requirement for the base is necessary to
  577.         be  consistent  with  the  resolution  that  The Last Byte Memory
  578.         Manager  uses  to  organize  high  memory  during initialization.
  579.         However,  this  requirement is often affected by the much coarser
  580.         resolution used by most memory controllers.  
  581.  
  582.         The  upper area is partitioned into blocks.  Some controllers use
  583.         16k  blocks,  some use 32k blocks, and some use 64k blocks.  Each
  584.         block  must  be either totally enabled or disabled.  I.e., if any
  585.         part  of  a  block's address space is disabled by the presence of
  586.         an  adapter  card,  the  entire  block  of memory is disabled and
  587.         cannot be made available as High-DOS Memory.  
  588.  
  589.  
  590.         3.1 BANKSWITCH=<base>:<size>         
  591.  
  592.         Forces  a  region  of upper memory that would normally be used as
  593.         High-DOS memory to be made available as Bank-Switch memory.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  602.  
  603.  
  604.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)               8
  605.  
  606.  
  607.                 ┌─────────────────────────────────────────────────┐
  608.                 │ This option requires a memory controller chip.  │
  609.                 └─────────────────────────────────────────────────┘ 
  610.  
  611.  
  612.         3.2 CACHE=<kbytes>         
  613.  
  614.         Forces  LASTBYTE.SYS  to  think that there is a cache between the
  615.         CPU  and  main  memory and to set its size.  (This has nothing to
  616.         do  with  disk  caching!)  This option is not normally necessary;
  617.         LASTBYTE.SYS  normally  will automatically detect the presence of
  618.         a cache and its size.  
  619.  
  620.         Activating  bank-switch memory causes the contents of a cache (if
  621.         present)  to  be  invalid;  this  is known as a "cache coherency"
  622.         problem.    If   a   cache   is   detected  during  installation,
  623.         LASTBYTE.SYS  checks  to  see if any portion of the upper address
  624.         space  is  cached.   If  not,  then  no  cache  coherency problem
  625.         exists.  
  626.  
  627.         If  the upper address space is cached, however, LASTBYTE.SYS will
  628.         flush  the  cache  on every access to Bank-Switch memory in order
  629.         to  prevent  the  cache  from  providing invalid data to the CPU.
  630.         The  cache  is flushed by filling it from low memory.  The <size>
  631.         value is used to determine how much to fill.  
  632.  
  633.  
  634.         3.3 DOS=<base>:<size>         
  635.  
  636.         Forces  a  region  of upper memory that would normally be used as
  637.         Bank-Switch memory to be made available as High-DOS memory.  
  638.  
  639.  
  640.         3.4 EXCLUDE=<base>:<size>         
  641.  
  642.         Forces  a  region  of upper memory unavailable as either High-DOS
  643.         or Bank-Switch memory.  
  644.  
  645.  
  646.         3.5 KEY=<AccessKey>         
  647.  
  648.         When  you register The Last Byte Memory Manager, you are given an
  649.         access  key that is derived from the spelling of your name.  This
  650.         eight  character  key  should  be specified using this option, as
  651.         in: 
  652.  
  653.                 KEY=12345678 
  654.  
  655.         This  option  must  be  used  in conjunction with the NAME option
  656.         discussed below.  
  657.  
  658.  
  659.  
  660.  
  661.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  662.  
  663.  
  664.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)               9
  665.  
  666.  
  667.  
  668.         3.6 MOVE=VIDEOBIOS         
  669.  
  670.         Tries  to move an EGA or VGA bios to a better location within the
  671.         available  upper  memory in order to reduce fragmentation of free
  672.         memory.  
  673.  
  674.  
  675.         3.7 MOVE=MAINBIOS         
  676.  
  677.         Tries  to  move  the  main  bios  to a better location within the
  678.         available  upper  memory in order to reduce fragmentation of free
  679.         memory.  
  680.  
  681.  
  682.         3.7.1 The ADDHOLES suboption       
  683.  
  684.         MOVE=MAINBIOS,ADDHOLES  will  create  seven holes in the residual
  685.         8k left at FE00 for a total of more than 3k.  
  686.  
  687.  
  688.         3.8 MOVE=OVERLAY         
  689.  
  690.         This  option  is  for  chipsets in which the main bios shadow ram
  691.         cannot  be  made  read/write  (ETEQ,  OPTi,  Intel,  and  some by
  692.         VLSI).   This option puts that ram in write-only mode, copies the
  693.         video  bios  on  top  of the main bios initialization code at the
  694.         beginning  of  the  bios, then returns the ram to read-only mode.
  695.         Then  the  old  video  bios  region is converted to usable Hi-DOS
  696.         memory.  
  697.  
  698.  
  699.         3.9 MOVE=XBDA         
  700.  
  701.         This  option  relocates the Extended Bios Data Area (XBDA), if it
  702.         exists,  into  Upper  Memory.  The XBDA is usually 1k reserved at
  703.         the  top  of  conventional  memory  by  the  main  Bios.  Not all
  704.         machines  use an XBDA, but if it exists, LASTBYTE.SYS will report
  705.         639k  of  Conventional  Memory  instead of 640k, and the advanced
  706.         utility   HIGHAPND  will  refuse  to  append  any  memory.   Some
  707.         machines  may  not operate properly with a relocated XBDA, so use
  708.         this  option with caution.  (Note that some computer viruses also
  709.         "steal" the top 1k of memory.) 
  710.  
  711.  
  712.         3.10 NAME=<RegisteredUserName>         
  713.  
  714.         When  you register The Last Byte Memory Manager, you are given an
  715.         access  key that is derived from the spelling of your name.  This
  716.         option  is  used  to  specify  your name as used to generate that
  717.         key, as in: 
  718.  
  719.  
  720.  
  721.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  722.  
  723.  
  724.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              10
  725.  
  726.  
  727.  
  728.                 NAME=Daniel_W._Lewis 
  729.  
  730.                 ┌─────────────────────────────────────────────────┐
  731.                 │ Note: Spaces MUST be indicated by underscores!  │
  732.                 └─────────────────────────────────────────────────┘ 
  733.  
  734.         This  option  should  be  used in conjunction with the KEY option
  735.         discussed earlier.  
  736.  
  737.  
  738.         3.11 PHYSICAL=<MemoryController>         
  739.  
  740.         Used  to  specify the memory controller determined by the CHIPSET
  741.         program.  
  742.  
  743.  
  744.         3.11.1 The OVERRIDE suboption       
  745.  
  746.         Many  memory  controller chips can relocate all or part of shadow
  747.         ram  to  the  top of (extended) memory.  If LASTBYTE.SYS fails to
  748.         install with the error message: 
  749.  
  750.                "Shadow Ram memory relocated - Use OVERRIDE option"
  751.  
  752.         try adding the OVERRIDE suboption to the PHYSICAL option, as in: 
  753.  
  754.                 PHYSICAL=82C212,OVERRIDE 
  755.  
  756.         This  disables  any  shadow ram relocation that may be in effect,
  757.         regardless  of  your  CMOS  configuration  menu  setup.  The CMOS
  758.         setup  menu  of  your  BIOS may also provide an option to disable
  759.         relocation  directly,  but  there are some that determine whether
  760.         to relocate or not based on other configuration options.   
  761.  
  762.  
  763.         3.11.2 The NOEMS suboption       
  764.  
  765.         May  be  used in conjunction with PHYSICAL=LIM4EMS or EEMS to use
  766.         the 64k page frame as High-DOS Memory, as in: 
  767.  
  768.                 PHYSICAL=LIM4EMS,NOEMS 
  769.  
  770.         The   NOEMS   suboption   must   be   used  in  conjunction  with
  771.         PHYSICAL=LIM3EMS   (i.e.,   PHYSICAL=LIM3EMS,NOEMS).    Doing  so
  772.         disables other (normal) use of all expanded memory.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  782.  
  783.  
  784.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              11
  785.  
  786.  
  787.         3.11.3 The FRAME suboption       
  788.  
  789.         May  be used with those low-level physical drivers that implement
  790.         64k  of  Hi-Dos  memory  by using the four 16k pages of their EMS
  791.         page frame, as in: 
  792.  
  793.                 PHYSICAL=HT12,FRAME=CC00 
  794.  
  795.         The  possible  values (e.g., "CC00") for the position of the page
  796.         frame  is  restricted  by the hardware capability of the chipset,
  797.         but  is  always  limited  to no more than C000, C400, C800, CC00,
  798.         D000, D400, D800, DC00, or E000.  
  799.  
  800.  
  801.         3.12 RESTRICT=<ab> <cd> <ef>       
  802.  
  803.         Address  lines  A15 and A16 are not latched in hardware design of
  804.         the  AT  bus.  As a consequence, some 16-bit adapter cards do not
  805.         properly  decode  these  address  lines  within  the  narrow time
  806.         constraints  imposed  by  the  Address Latch Enable (ALE) signal,
  807.         and  will  occassionally  respond  to  a  memory  access  that is
  808.         directed  at  some  other portion of the address space.  Thinking
  809.         that  it  is  for  them, they force the transfer into 16-bit mode
  810.         even  though the intended recipient requires 8-bit mode, and thus
  811.         cause  erroneous  data  to  be  transferred  to  the bytes in the
  812.         odd-numbered addresses.  
  813.  
  814.         The  most common (and damaging) occurence occurs during the 8-bit
  815.         DMA  transfers  between a floppy disk drive and upper memory near
  816.         the address space occupied by an offending 16-bit adapter card.  
  817.  
  818.         Due  to  organization  of the address signals on the AT bus, this
  819.         phenomena  only  occurs when the two address areas are within the
  820.         same  128k  region.   There  are  three such regions in the upper
  821.         area:  A0000-BFFFF,  C0000-DFFFF,  and E0000-FFFFF.  LASTBYTE.SYS
  822.         automatically  senses  the  presence  of  16-bit adapter cards in
  823.         each  of  these three regions and records this information within
  824.         its  resident image for use by its utilities.  LASTBYTE.SYS skips
  825.         this  test  if it detects a PC with a Micro Channel bus (like the
  826.         PS/2) since problem was corrected in its design.  
  827.  
  828.         The  RESTRICT  option  is  provided  to  override  this automatic
  829.         detection  of  16-bit adapters.  Each of the three arguments (one
  830.         per  128k region) should be replaced by either "0" (indicating no
  831.         16-bit  adapters),  or  "1"  (indicating the presense of a 16-bit
  832.         adapter) and separated by commas.  
  833.  
  834.         For  example,  the  option RESTRICT=1,1,0 would imply that one or
  835.         more  16-bit  adapters  are located in the first two 128k regions
  836.         of   upper   memory  (A000-DFFF),  so  that  when  the  companion
  837.         /RESTRICT  option  of  HIGHDRVR,  HIGHTSR, HIGHDUBL or HIGHUMM is
  838.  
  839.  
  840.  
  841.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  842.  
  843.  
  844.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              12
  845.  
  846.  
  847.         used,  only  High-DOS  memory  in  the  region  E000-FFFF will be
  848.         allocated.  
  849.  
  850.         (Note:  The  /RESTRICT  option  is also supported by the advanced
  851.         utilities  HIGHEMS3,  and HIGHEMS4.  The default operation of the
  852.         advanced  utility HIGHBFRS is /RESTRICT, but this may be disabled
  853.         by use of its /NORESTRICT option.) 
  854.  
  855.  
  856.         3.13 SHADOW=<base>:<size>         
  857.  
  858.         The  Last  Byte  Memory Manager will automatically copy the video
  859.         bios  and  main  bios  to  shadow  ram  if  they  aren't  already
  860.         shadowed.   However,  it  will  not do so for other adapter ROMs.
  861.         This   is   because  some  controllers  "hide"  a  small  RAM  by
  862.         overlaying  it  in  a  portion  of  the  same  address space they
  863.         declare  as  being  filled  with  ROM.   Such  a RAM is no longer
  864.         accessible  when the ROM is shadowed, usually causing the adapter
  865.         to stop functioning.  
  866.  
  867.         This  option  is  for those who want to forces a region of memory
  868.         (presumably  ROM)  to  be  copied  into  shadow  ram.   If  other
  869.         hardware  is  detected  outside  the specified region, but within
  870.         the  same  memory  controller  block  which  conflicts  with this
  871.         request,  a  corresponding  error  message  will be displayed and
  872.         LASTBYTE.SYS will not be installed.  
  873.  
  874.                 ┌─────────────────────────────────────────────────┐
  875.                 │ This option requires a memory controller chip.  │
  876.                 └─────────────────────────────────────────────────┘ 
  877.  
  878.  
  879.         3.14 The ? (question mark) Option     
  880.  
  881.         Causes  LASTBYTE.SYS  to  erase  the screen, display a summary of
  882.         what  it  finds  in  the  upper  memory  area,  and pause for two
  883.         seconds   to   give   the   user   an  opportunity  to  read  the
  884.         information.   To  freeze this display for a longer period, press
  885.         <Ctrl>-S;  then to continue with CONFIG.SYS processing, press any
  886.         key.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  902.  
  903.  
  904.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              13
  905.  
  906.  
  907.             CHAPTER 4 - HIGHDRVR AND HIGHTSR COMMAND LINE OPTIONS   
  908.  
  909.  
  910.         HIGHDRVR  is  a  device  driver that is used to load other device
  911.         drivers  into upper memory.  HIGHTSR is a program that is used to
  912.         load  TSR programs into upper memory.  Both utilities use most of
  913.         the  same  command line options as discussed in the sections that
  914.         follow.  
  915.  
  916.  
  917.         4.1 HIGHDRVR Command Line Syntax      
  918.  
  919.         The command line syntax of the CONFIG.SYS line for HIGHDRVR is: 
  920.  
  921.             DEVICE=[path]HIGHDRVR.SYS [options] <filespec> [options]
  922.  
  923.         where  '<filespec>'  is  the  filename of the device driver to be
  924.         loaded  high,  optionally  prefixed  by  a  drive  and  directory
  925.         specifcation.   The  filespec  may  be  preceded  by  one or more
  926.         options,  and  followed by options at the end of the command line
  927.         as required by the particular driver to be loaded.  
  928.  
  929.         When  HIGHDRVR  searches  the disk for the device driver to load,
  930.         it follows the following search strategy: 
  931.  
  932.              1.  If  '<filespec>'  includes  a  drive  or  directory
  933.                  specification,  this  will  be  the only place that
  934.                  HIGHDRVR will look.  
  935.  
  936.         Otherwise, HIGHDRVR will search for the driver in: 
  937.  
  938.              2.  The current (root) directory, and then 
  939.  
  940.              3.  The same directory where HIGHDRVR was found.  
  941.  
  942.  
  943.         4.2 HIGHTSR Command Line Syntax      
  944.  
  945.         The command line syntax for HIGHTSR is: 
  946.  
  947.                   [path]HIGHTSR [options] <filespec> [options]
  948.  
  949.         where  '<filespec>'  is  the  filename  of  the TSR program to be
  950.         loaded  high,  optionally  prefixed  by  a  drive  and  directory
  951.         specifcation.   The  filespec  may  be  preceded  by  one or more
  952.         options,  and  followed by options at the end of the command line
  953.         as required by the particular TSR to be loaded.  
  954.  
  955.         When  HIGHTSR searches the disk for the device driver to load, it
  956.         follows   the   same  strategy  that  MS-DOS  uses  when  loading
  957.         programs: 
  958.  
  959.  
  960.  
  961.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  962.  
  963.  
  964.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              14
  965.  
  966.  
  967.  
  968.              1.  If  '<filespec>'  includes  a  drive  or  directory
  969.                  specification,  this  will  be  the only place that
  970.                  HIGHTSR will look.  
  971.  
  972.         Otherwise, HIGHTSR will search for the TSR program in: 
  973.  
  974.              2.  The current directory, and then 
  975.  
  976.              3.  Those  directories  given  by  the PATH environment
  977.                  variable.  
  978.  
  979.         HIGHTSR  may also be used with the MS-DOS "INSTALL=" directive of
  980.         a CONFIG.SYS file.  
  981.  
  982.  
  983.         4.3 The /SIZE Option       
  984.  
  985.         The  amount  of  High-DOS memory required to load a device driver
  986.         or  TSR  is  the  larger  of two amounts: (1) the amount required
  987.         during  initialization  and  (2)  the  final resident requirement
  988.         once  installed.   Either or both of these may be greater than or
  989.         equal to the size of the file.  
  990.  
  991.         Most   device   drivers   and   TSR's  require  more  memory  for
  992.         initialization  than  when  resident,  although  there  are a few
  993.         (such   as   SMARTDRV.SYS  and  NANSI.SYS)  which  require  extra
  994.         resident  memory  for  buffers,  etc.   The  normal  operation of
  995.         HIGHDRVR  and  HIGHTSR is to use the largest free High-DOS memory
  996.         block  to load the software since the resident memory requirement
  997.         cannot  be  determined  until  after the software has been loaded
  998.         and initialized.  
  999.  
  1000.         Unfortunately,  this  can  lead  to  a  less  than optimum use of
  1001.         memory.   If  the  memory  requirements were known, then a memory
  1002.         block  could  be  selected using a "best fit" strategy; i.e., the
  1003.         smallest  free  High-DOS  memory  block  which  is larger than or
  1004.         equal  to  the  load  requirement.   This usually results in much
  1005.         better utilization of memory.  
  1006.  
  1007.  
  1008.         4.4 Measuring Load Requirements Using /SIZE     
  1009.  
  1010.         If  inserted  on the command line of HIGHTSR or HIGHDRVR as shown
  1011.         below: 
  1012.  
  1013.                 C:\TLBMM\HIGHTSR /SIZE C:\DOS\PRINT /D:PRN 
  1014.  
  1015.                 -or- 
  1016.  
  1017.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS /SIZE C:\DOS\ANSI.SYS 
  1018.  
  1019.  
  1020.  
  1021.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1022.  
  1023.  
  1024.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              15
  1025.  
  1026.  
  1027.  
  1028.         then  both  the  initialization and resident requirements will be
  1029.         displayed  on  the console after the software has been loaded and
  1030.         initialized.  
  1031.  
  1032.  
  1033.         4.5 Achieving Best Fit Using /SIZE:n1     
  1034.  
  1035.         The  larger  of  the initialization and resident requirements may
  1036.         be  specified  with  the  /SIZE  option  to  force  a  "best fit"
  1037.         allocation.  For example: 
  1038.  
  1039.                 C:\TLBMM\HIGHTSR /SIZE:17120 C:\DOS\PRINT.EXE /D:PRN 
  1040.  
  1041.                 -or- 
  1042.  
  1043.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS /SIZE:12032 C:\DOS\ANSI.SYS 
  1044.  
  1045.  
  1046.         4.6 Borrowing Memory Using /SIZE:n1 n2     
  1047.  
  1048.         Usually  the resident requirement is less than the initialization
  1049.         requirement.   If  there  isn't  enough  free  High-DOS memory to
  1050.         satisfy  the  initialization requirement, but there is enough for
  1051.         the  resident  requirement,  then  you  may still be able to load
  1052.         your  software  by adding a second parameter to the /SIZE option,
  1053.         as in: 
  1054.  
  1055.                 C:\TLBMM\HIGHTSR /SIZE:16208,5776 C:\DOS\PRINT /D:PRN 
  1056.  
  1057.                 -or- 
  1058.  
  1059.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS             /SIZE:12032,4820
  1060.                 C:\DOS\ANSI.SYS 
  1061.  
  1062.         In  this  example, the initialization requirement is specified by
  1063.         the  first parameter and is 16208 bytes; the resident requirement
  1064.         is  specified  by  the  second parameter and is 5776 bytes.  Note
  1065.         that  specifying  the  second parameter is not helpful unless the
  1066.         resident    requirement   is   less   than   the   initialization
  1067.         requirement.  
  1068.  
  1069.         When  the  second  parameter  is  used, HIGHTSR first looks for a
  1070.         free  area larger than or equal to the initialization requirement
  1071.         (the  first parameter); if found, it simply loads the software in
  1072.         this  area  and  the  second  paramter  is  ignored.   Otherwise,
  1073.         HIGHTSR  searches  for  a  free  area larger than or equal to the
  1074.         resident  requirement  (the  second  parameter),  and  which  has
  1075.         "data"  allocated  immediately  above  it that can be temporarily
  1076.         moved  to create enough free memory to satisfy the initialization
  1077.         requirement.   Such  "data"  includes High-DOS memory used by the
  1078.  
  1079.  
  1080.  
  1081.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1082.  
  1083.  
  1084.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              16
  1085.  
  1086.  
  1087.         advanced   utilities   HIGHDISK,  HIGHEMS3,  HIGHEMS4,  HIGHSPLR,
  1088.         HIGHKEY, and HIGMARK.  
  1089.  
  1090.  
  1091.         4.7 The /LOW Option       
  1092.  
  1093.         As  noted  earlier,  TSR's  and device drivers often require much
  1094.         more  memory  during  installation  as  compared to that required
  1095.         once  they  are  resident.   This  can  prevent loading them into
  1096.         High-DOS  memory  even  if  there's enough for the resident image
  1097.         (but not enough for initialization).  
  1098.  
  1099.         The  /LOW  option  can be used with some TSR's and device drivers
  1100.         to get around this problem: 
  1101.  
  1102.                 C:\TLBMM\HIGHTSR /LOW C:\DOS\APPEND 
  1103.  
  1104.                 -or- 
  1105.  
  1106.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS                         /LOW
  1107.                 C:\DRIVERS\MYDRIVER.SYS 
  1108.  
  1109.         For  example,  the  first  example above loads a TSR (APPEND.EXE)
  1110.         and  initializes  it  in  low (conventional) memory where there's
  1111.         lots  of  room,  then copies the (smaller) resident image up into
  1112.         upper memory.  
  1113.  
  1114.                 ╔═════════════════════════════════════════════════╗
  1115.                 ║ WARNING: The design of some software may pre-   ║ 
  1116.                 ║ vent the /LOW option from working properly.     ║ 
  1117.                 ║ Don't use it unless necessary, and then only    ║ 
  1118.                 ║ after you have tested it to be sure everything  ║ 
  1119.                 ║ works as expected.  (For example, it will NOT   ║ 
  1120.                 ║ work with PRINT, SHARE, FASTOPEN, MODE, or      ║ 
  1121.                 ║ HyperDisk.)                                     ║ 
  1122.                 ╚═════════════════════════════════════════════════╝
  1123.  
  1124.  
  1125.         4.8 The /RESTRICT Option       
  1126.  
  1127.         When  used,  this  option  restricts  which 128k regions of upper
  1128.         memory  may  be  allocated  for  use  with HIGHDRVR, HIGHDUBL and
  1129.         HIGHTSR.   For  a  detailed  discussion  of why these regions may
  1130.         need  to  be  restricted and how to control the restrictions, see
  1131.         the   discussion   of   the   RESTRICT  option  in  the  detailed
  1132.         description of LASTBYTE.SYS.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1142.  
  1143.  
  1144.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              17
  1145.  
  1146.  
  1147.         4.9 The /!NOPAUSE Option       
  1148.  
  1149.         All  of  the  utility  programs  (*.EXE files) that come with The
  1150.         Last   Byte  Memory  Manager  support  the  command  line  option
  1151.         /!NOPAUSE.   This  option  eliminates the wait-for-keyboard pause
  1152.         after  an error message is displayed.  When one of these programs
  1153.         terminates  with  an  error  message,  it also returns a non-zero
  1154.         errorlevel  which  can be tested in batch files to make automatic
  1155.         decisions  about  how  to  proceed.  The  /!NOPAUSE option simply
  1156.         makes use of the errorlevel more practical.  
  1157.  
  1158.  
  1159.         4.10 The /NOENV Option (HIGHTSR only)     
  1160.  
  1161.         All  programs,  including  TSR's,  are  allocated  two regions of
  1162.         memory  when  they  are  loaded:  One is the area for the program
  1163.         itself,  and  the  other  is for a copy of the environment.  Most
  1164.         TSR's  don't  make  use  of  their environment, and some actually
  1165.         release it to the operating system rather than hanging onto it.  
  1166.  
  1167.         If  HIGHMEM  finds  an environment block, the corresponding entry
  1168.         in  the  "Description"  column will have the name of the TSR that
  1169.         it  belongs  to  (such as "CLOCK.EXE") followed by the indication
  1170.         "[Env]".    Occassionally,  you  may  see  a  similar  indication
  1171.         "[Dat]";  this  is  a  data block explicitly allocated by the TSR
  1172.         for some unknown purpose.  
  1173.  
  1174.                 ┌─────────────────────────────────────────────────┐
  1175.                 │ The authors of some TSR's attempt to save a bit │
  1176.                 │ of memory by having the TSR eliminate its own   │
  1177.                 │ Program Segment Prefix (PSP) during initializa- │
  1178.                 │ tion.  Doing so makes it impossible to identify │
  1179.                 │ the TSR'senvironment block.  However, this byte │
  1180.                 │ saving mentality will usually mean that the TSR │
  1181.                 │ initialization code also eliminates its environ-│
  1182.                 │ ment block, so this is rarely a problem.        │
  1183.                 └─────────────────────────────────────────────────┘ 
  1184.  
  1185.         If  you  see  a  block labelled "[Env]" in the output of HIGHMEM,
  1186.         then  you  can  use  the /NOENV command line option of HIGHTSR to
  1187.         release this block, even if the TSR didn't: 
  1188.  
  1189.                 C:\TLBMM\HIGHTSR /NOENV C:\TLBMM\CLOCK 
  1190.  
  1191.         As  noted  earlier,  some  TSRs  will  release  their environment
  1192.         anyway  and  so you may be tempted to load them without using the
  1193.         /NOENV  option.   This  usually  will  create  a  "hole" in upper
  1194.         memory  since  the  TSR's  environment is almost always allocated
  1195.         just  below  the TSR itself.  Use of the /NOENV option forces the
  1196.         environment  to  be  allocated down in conventional memory (where
  1197.         it will be reclaimed later) so that the "hole" is eliminated.  
  1198.  
  1199.  
  1200.  
  1201.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1202.  
  1203.  
  1204.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              18
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1262.  
  1263.  
  1264.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              19
  1265.  
  1266.  
  1267.                   CHAPTER 5 - HIGHUMM.SYS: A UMB PROVIDER     
  1268.  
  1269.  
  1270.         HIGHUMM  is  a  device  driver that creates, and lets application
  1271.         software  use,  Upper  Memory  Blocks (UMB's) in the upper memory
  1272.         area  via  a  standard  protocol that is part of what is known as
  1273.         the  Extended  Memory Specification (XMS).  The number, size, and
  1274.         location  of  UMB  blocks vary widely depending upon the types of
  1275.         hardware adapter cards resident within the upper address space.  
  1276.  
  1277.         If  HIGHUMM  is  installed,  you may use the DOS 5 DEVICEHIGH and
  1278.         LOADHIGH  commands  as  alternatives  to  HIGHDRVR  and  HIGHTSR.
  1279.         HIGHUMM  can  also  be used to advantage with other software such
  1280.         as  4DOS,  BUFFIT,  WAS, and DOSMAX.  These options are discussed
  1281.         in the next chapter.  
  1282.  
  1283.         HIGHUMM may be installed in one of two ways: 
  1284.  
  1285.              1.  If  an XMS driver has not been loaded, HIGHUMM will
  1286.                  become  a  UMB-Only  XMS  device driver.  All other
  1287.                  XMS  functions will return failure, indicating that
  1288.                  the function is not implemented.  For example, 
  1289.  
  1290.                  DEVICE=C:\TLBMM\LASTBYTE.SYS {and any LASTBYTE options}
  1291.                  DEVICE=C:\TLBMM\HIGHUMM.SYS
  1292.  
  1293.              2.  If  an  XMS  driver (such as HIMEM.SYS) has already
  1294.                  been  loaded, HIGHUMM will link into it, adding the
  1295.                  UMB functions.  For example: 
  1296.  
  1297.                  DEVICE=C:\TLBMM\LASTBYTE.SYS {and any options}
  1298.                  DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS
  1299.                  DEVICE=C:\TLBMM\HIGHUMM.SYS
  1300.  
  1301.         Do  not  install  HIGHUMM using either HIGHDRVR or the DEVICEHIGH
  1302.         command; simply use a DEVICE command, as shown above.  
  1303.  
  1304.  
  1305.         5.1 The /REPLACE Option       
  1306.  
  1307.         Although  described  in  the  XMS  specification, most XMS device
  1308.         drivers  so  not implement the UMB functions.  If your XMS driver
  1309.         happens  to  also  be  a  UMB provider, HIGHUMM will abort with a
  1310.         corresponding  error  message.   You  may  then  use the /REPLACE
  1311.         option  on  the HIGHUMM.SYS command line to force it to take over
  1312.         responsibility for providing UMBs.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1322.  
  1323.  
  1324.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              20
  1325.  
  1326.  
  1327.         5.2 The /NOSPLIT Option       
  1328.  
  1329.         HIGHUMM  requires  that  LASTBYTE.SYS  be  installed  first.   It
  1330.         automatically  loads  itself  into  upper memory, putting much of
  1331.         itself  into  the  HMA  or bank-switch memory if available.  (You
  1332.         can prevent this by using the /NOSPLIT option.) 
  1333.  
  1334.  
  1335.         5.3 The /RESTRICT Option       
  1336.  
  1337.         When  used,  this  option  restricts  which 128k regions of upper
  1338.         memory  may  be  allocated  for use with HIGHUMM.  For a detailed
  1339.         discussion  of  why  these  regions may need to be restricted and
  1340.         how  to  control  the  restrictions,  see  the  discussion of the
  1341.         RESTRICT option in the chapter on LASTBYTE.SYS.  
  1342.  
  1343.  
  1344.         5.4 Limiting UMB Memory       
  1345.  
  1346.         If  you  want  to limit how much upper memory can be allocated by
  1347.         HIGHUMM  as UMB's, you can specify this in kbytes as an option on
  1348.         the HIGHUMM.SYS command line, as in: 
  1349.  
  1350.                 DEVICE=C:\TLBMM\HIGHUMM.SYS 60 
  1351.  
  1352.         This  provides  a guarantee that some amount of upper memory will
  1353.         never  be  allocated  by  HIGHUMM.SYS,  and  will  thus  still be
  1354.         available for other uses.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1382.  
  1383.  
  1384.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              21
  1385.  
  1386.  
  1387.           CHAPTER 6 - HIGHDUBL.SYS: A REPLACEMENT FOR DBLSPACE.SYS    
  1388.  
  1389.  
  1390.         If  you have installed the DOS 6 disk compression software called
  1391.         DBLSPACE,  then each time you boot the operating system loads the
  1392.         device  driver  DBLSPACE.BIN  from  a  hidden  file  in  the root
  1393.         directory  to  the  top  of  conventional  memory.   Later during
  1394.         CONFIG.SYS  processing,  a DEVICE=DBLSPACE.SYS command is used to
  1395.         relocate  DBLSPACE.BIN to the bottom of conventional memory, or a
  1396.         DEVICEHIGH=DBLSPACE.SYS  command  is  used with DOS=UMB and a UMB
  1397.         provider (like HIGHUMM.SYS) to move it to upper (UMB) memory.  
  1398.  
  1399.         HIGHDUBL.SYS   is   a  replacement  for  DBLSPACE.SYS.   It  does
  1400.         everything  that  DBLSPACE.SYS can do and more.  Specifically, it
  1401.         has  the  additional ability to relocate DBLSPACE.BIN into Hi-DOS
  1402.         memory  even  if  HIGHUMM.SYS  and DOS=UMB are not installed.  In
  1403.         other  words, if you are using HIGHDRVR.SYS instead of DEVICEHIGH
  1404.         commands  in  CONFIG.SYS,  then  you should also use HIGHDUBL.SYS
  1405.         instead of DBLSPACE.SYS to relocate DBLSPACE.BIN, as in: 
  1406.  
  1407.                 DEVICE=C:\TLBMM\HIGHDUBL.SYS 
  1408.  
  1409.  
  1410.         6.1 The /MOVE Option       
  1411.  
  1412.         The  /MOVE  option of HIGHDUBL is only provided for full cosmetic
  1413.         compatibility  with DBLSPACE.SYS.  It is not required in order to
  1414.         relocate  DBLSPACE.BIN  into  Hi-DOS memory.  If used, the proper
  1415.         syntax would be the same as used by DBLSPACE.SYS: 
  1416.  
  1417.                 DEVICE=C:\TLBMM\HIGHDUBL.SYS /MOVE 
  1418.  
  1419.  
  1420.         6.2 The /RESTRICT Option       
  1421.  
  1422.         When used as in: 
  1423.  
  1424.                 DEVICE=C:\TLBMM\HIGHDUBL.SYS /MOVE /RESTRICT 
  1425.  
  1426.         this  option  restricts which 128k regions of upper memory may be
  1427.         used  to  load  DBLSPACE.BIN  into Hi-DOS memory.  For a detailed
  1428.         discussion  of  why  these  regions may need to be restricted and
  1429.         how  to  control  the  restrictions,  see  the  discussion of the
  1430.         RESTRICT option in the chapter on LASTBYTE.SYS.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1442.  
  1443.  
  1444.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              22
  1445.  
  1446.  
  1447.                     CHAPTER 7 - SPECIAL CONSIDERATIONS       
  1448.  
  1449.  
  1450.         7.1 Specifying Command Line Options with Indirect Files   
  1451.  
  1452.         Some  of the device drivers and utility programs in The Last Byte
  1453.         Memory  Manager  package  may  require  lots  of  options  to  be
  1454.         specified.   To  avoid  lengthly command lines, these options can
  1455.         be  placed  in  a text file if the name of that file is specified
  1456.         on  the command line preceded by the '@' character.  For example,
  1457.         you'd  begin  to  run out of room if all of the following options
  1458.         were required on the LASTBYTE.SYS command line: 
  1459.  
  1460.         PHYSICAL=82C302 NAME=Joe_Blow KEY=12345678 APPEND=64 DOS=F000:32 ?
  1461.  
  1462.         As  an  alternative,  create  a  corresponding  text  file called
  1463.         LASTBYTE.CFG (for example), and put the options into it: 
  1464.  
  1465.                 PHYSICAL=82C302   NAME=Joe_Blow   KEY=12345678  APPEND=64
  1466.                 DOS=F000:32 ? 
  1467.  
  1468.         (Carriage returns in the indirect file are treated as blanks) 
  1469.  
  1470.         Then the CONFIG.SYS command line becomes simply: 
  1471.  
  1472.                 DEVICE=C:\TLBMM\LASTBYTE.SYS @LASTBYTE.CFG 
  1473.  
  1474.         In  effect,  options  taken  from  the indirect file are inserted
  1475.         into  the  command  line,  so  that  one  or  more  indirect file
  1476.         references  may  be  placed  among  other  options on the command
  1477.         line: 
  1478.  
  1479.                 DEVICE=C:\TLBMM\LASTBYTE.SYS ? @TLB.1 A=32 @C:\TLB\TLB.2 
  1480.  
  1481.         Indirect  files  may  be  used  on the command line of any device
  1482.         driver  (.SYS  files) or utility program (.EXE files) in The Last
  1483.         Byte Memory Manager package.  
  1484.  
  1485.  
  1486.         7.2 Using the DOS=F000:32 Option      
  1487.  
  1488.         The  64k  region  starting  at paragraph address F000 is the Bios
  1489.         ROM.   Many  computers  use  a  Bios  ROM  developed  by  AMI  or
  1490.         Phoenix.   The  more  recent  versions  of  these ROMs devote the
  1491.         first  32k  to  initialization  code that is only used during the
  1492.         boot  sequence, and use the second 32k for that portion that must
  1493.         remain  available  at  all  times.  (This seems to be true of the
  1494.         Award Bios as well, but has not been verified.) 
  1495.  
  1496.         By  the time your computer gets to the point in its boot sequence
  1497.         where  it  is  installing  the  device  drivers (e.g., when it is
  1498.  
  1499.  
  1500.  
  1501.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1502.  
  1503.  
  1504.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              23
  1505.  
  1506.  
  1507.         installing  LASTBYTE.SYS),  the  Bios  initialization  code is no
  1508.         longer  needed.   If  you  have  one of these AMI or Phoenix Bios
  1509.         chips,  you  can  capture  another 32k of upper memory by using a
  1510.         DOS=F000:32 option on the LASTBYTE.SYS command line.  
  1511.  
  1512.         Of  course,  whenever  you  press Ctrl-Alt-Del to do a warm boot,
  1513.         the  ROM  Bios  initialization  code  needs to be executed again!
  1514.         And  that could be a problem since you've effectively disabled it
  1515.         with   the   DOS=F000:32   option!    Fortunately,   LASTBYTE.SYS
  1516.         intercepts   all   keyboard  input  and  keeps  an  eye  out  for
  1517.         Ctrl-Alt-Del.   When it sees the warm boot request, it will force
  1518.         a  cold  boot  if  you've  used  the  DOS=F000:32  option.   This
  1519.         re-enables  the  entire  64k  Bios ROM so that the initialization
  1520.         code  is  reactivated  before  the processor tries to execute it.
  1521.         Otherwise a normal warm boot is used.  
  1522.  
  1523.                 ╔═════════════════════════════════════════════════╗
  1524.                 ║ WARNING: Some TSRs intercept keyboard interrupt ║ 
  1525.                 ║ 9, and jump directly into a fixed location in   ║ 
  1526.                 ║ the Bios ROM where the Warm Boot code begins.   ║ 
  1527.                 ║ Unfortunately, this will bypass LASTBYTE.SYS's  ║ 
  1528.                 ║ attempt to turn the ROM back on.                ║ 
  1529.                 ╚═════════════════════════════════════════════════╝
  1530.  
  1531.  
  1532.         7.3 Video Display RAM above 640k     
  1533.  
  1534.         In  general,  the  region A0000-BFFFF is the video display buffer
  1535.         area.   Various  display  adapters  (MDA, Hercules, CGA, EGA, and
  1536.         VGA)  typically  use only a small subset of this space.  The Last
  1537.         Byte  Memory  Manager  automatically  senses  what  kind of video
  1538.         display adapter is installed and reserves the space it uses.  
  1539.  
  1540.         The  MDA  (monochrome)  adapter  implements  a  4k text buffer at
  1541.         B0000-B0FFF,  and  the  CGA (color) adapter implements a 16k text
  1542.         and  graphics  buffer  at B8000-BBFFF.  The Hercules adapter uses
  1543.         the  entire 64k region at B0000-BFFFF in graphics modes, although
  1544.         only  the  first  4k of this space (B0000-B0FFF) is used for text
  1545.         modes.  
  1546.  
  1547.         The  EGA  and  VGA adapters have a 64k graphics display buffer at
  1548.         A0000-AFFFF,  and a 32k text display buffer at either B0000-B7FFF
  1549.         (when  used  with  a monochrome display), or at B8000-BFFFF (when
  1550.         used with a color display).  
  1551.  
  1552.         The  following  chart summarizes these regions as well as some of
  1553.         the  DOS  and  APPEND  optons  you  may  be  able  to  use on the
  1554.         LASTBYTE.SYS  command  line  with these adapters.  Unfortunately,
  1555.         the  ROM  bios  on  a  (very)  few  PC's may write into locations
  1556.         outside  the  area reserved for a particular type of display.  If
  1557.         you  decide  this  is  happening, you may need to add one or more
  1558.  
  1559.  
  1560.  
  1561.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1562.  
  1563.  
  1564.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              24
  1565.  
  1566.  
  1567.         EXCLUDE  options to the LASTBYTE.SYS command line to disable that
  1568.         region.  
  1569.  
  1570.              LASTBYTE.SYS Command Line Options for Display Adapters
  1571.  
  1572.              Adapter         Reserved        DOS         APPEND
  1573.              -------         --------        -------     -------
  1574.              CGA             B800:16                     96
  1575.              MDA             B000:4                      64
  1576.              Hercules        B000:64         B400:48     64
  1577.  
  1578.              EGA/VGA         A000:64         BC00:16     96
  1579.              w/Color         B800:32 
  1580.              Display
  1581.  
  1582.              EGA/VGA         A000:64         B400:16     64
  1583.              w/Mono          B000:32
  1584.              Display
  1585.  
  1586.              VGA Bios        C000:32         C600:8 (see next section)
  1587.  
  1588.              Notes: (1) Windows 3.0 may write in the region B000-BFFF.
  1589.                     (2) The ability to use the DOS and APPEND options 
  1590.                         depends on the availability of memory in the
  1591.                         indicated region.
  1592.  
  1593.  
  1594.         7.4 Video Adapter Bios ROMs      
  1595.  
  1596.         MDA  and CGA use the standard ROM Bios; they have no ROM of their
  1597.         own.   EGA  and  VGA adapters, however, incorporate their own ROM
  1598.         Bios  chip  right on the adapter card.  LASTBYTE.SYS successfully
  1599.         recognizes these ROMs, but has to treat VGA in a special manner: 
  1600.  
  1601.         The  VGA  adapter  made  by  IBM  has  a  24k  ROM  installed  at
  1602.         C0000-C5FFF,  which  means  that  the 8k at C6000-C7FFF should be
  1603.         usable.   Although  almost  all  VGA  clones have a ROM signature
  1604.         that  indicates  24k,  many of them use the C6000-C7FFF space for
  1605.         ROM  Bios  or  RAM  extensions  that  provide  their  "Super VGA"
  1606.         features.    In   particular,   the  Video7  and  Paradise  VGA's
  1607.         incorporate  their  own  RAM from C6000-C7FFF.  (This may also be
  1608.         true  of  other  VGA boards that uses a VLSI chip manufactured by
  1609.         Chips   and  Technologies,  Tseng  Labs,  Paradise,  or  Headland
  1610.         Technologies.)    For   this   reason,  when  LASTBYTE.SYS  finds
  1611.         anybody's  VGA  adapter, it automatically assumes that there is a
  1612.         32k ROM at C0000-C7FFF.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1622.  
  1623.  
  1624.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              25
  1625.  
  1626.  
  1627.         7.5 LASTBYTE.SYS and Expanded Memory      
  1628.  
  1629.         Expanded  memory always has an associated device driver.  If that
  1630.         driver  is loaded before LASTBYTE.SYS in the CONFIG.SYS file (and
  1631.         if  the  hardware is enabled) LASTBYTE.SYS will recognize the 64k
  1632.         EMM  page frame of the expanded memory and do the right thing: It
  1633.         will  treat the page frame like any other adapter ram and disable
  1634.         the  motherboard RAM that falls in the same address space so that
  1635.         it  doesn't  interfere  with the page frame.  For example, if the
  1636.         EMM  driver is loaded first, LASTBYTE.SYS will report the 64k EMM
  1637.         page frame as "EMS Page Frame".  
  1638.  
  1639.         This  works  fine,  of  course,  but loading the EMM driver first
  1640.         precludes  the  possibility  of loading it into upper memory.  To
  1641.         get  the  EMM  driver  into  upper  memory  means that it must be
  1642.         loaded after LASTBYTE.SYS, but you must be careful! 
  1643.  
  1644.         If   LASTBYTE.SYS  is  loaded  first,  the  page  frame  will  be
  1645.         recognized only in two cases: 
  1646.  
  1647.              1.  The   page   frame  used  by  the  expanded  memory
  1648.                  controller  built into some memory controller chips
  1649.                  will  be  recognized  and  reported  as  "EMS  Page
  1650.                  Frame".  
  1651.  
  1652.              2.  The  page  frame of a REAL expanded memory board is
  1653.                  (if  enabled)  recognized  and reported as "Adapter
  1654.                  RAM".  
  1655.  
  1656.         In either case, LASTBYTE.SYS will not use that memory space.  
  1657.  
  1658.                 ╔═════════════════════════════════════════════════╗
  1659.                 ║ WARNING: Some EMS boards must be enabled by     ║ 
  1660.                 ║ their device driver before they respond as      ║ 
  1661.                 ║ read/write memory.  This prevents LASTBYTE.SYS  ║ 
  1662.                 ║ from recognizing them, and you may need a       ║ 
  1663.                 ║ BANKSWITCH option to keep LASTBYTE.SYS from     ║ 
  1664.                 ║ using the page frame memory space.              ║ 
  1665.                 ╚═════════════════════════════════════════════════╝
  1666.  
  1667.         If  you  don't  have  an  expanded  memory board, but have used a
  1668.         device  driver  (like EMM386) that EMULATES expanded memory using
  1669.         extended  memory,  then LASTBYTE.SYS will not know about the page
  1670.         frame  unless  the  emulator is loaded first.  If LASTBYTE.SYS is
  1671.         loaded  first,  then  you  must  use  a EXCLUDE (not BANKSWITCH!)
  1672.         command  line  option  of  LASTBYTE.SYS  to  reserve a 64k region
  1673.         where  the  emulated  page  frame can be placed.  For EMM386, the
  1674.         page  frame  must  be positioned at C000, C400, C800, CC00, D000,
  1675.         D400, D800, DC00, or E000.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1682.  
  1683.  
  1684.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              26
  1685.  
  1686.  
  1687.         7.6 Fine-Tuning your Adapter Hardware Configuration     
  1688.  
  1689.         Many  adapter  cards  occupy  some  portion  of the upper address
  1690.         space.   Some  of  these  cards,  such  as SCSI Disk Controllers,
  1691.         often  have  DIP  switches or jumpers that can be used to set the
  1692.         address space they occupy to one of a few alternatives.  
  1693.  
  1694.         If  the memory map displayed by HIGHMEM is fragmented because one
  1695.         of  these adapters sits between two "....DOS Free" areas, you may
  1696.         want  to  try  to  reposition  the address space occupied by that
  1697.         adapter  by  modifying  the  DIP switch or jumper settings on the
  1698.         card.  
  1699.  
  1700.         Having  one  large  free  memory block is better than two smaller
  1701.         ones  because TSR's and device drivers almost always require more
  1702.         memory  during  initialization  than  once  installed.   In other
  1703.         words,  neither of the two smaller blocks may be large enough for
  1704.         the installation, but might if they were combined.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1742.  
  1743.  
  1744.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              27
  1745.  
  1746.  
  1747.                     CHAPTER 8 - USE WITH OTHER SOFTWARE     
  1748.  
  1749.  
  1750.         8.1 Microsoft's FASTOPEN and MODE programs     
  1751.  
  1752.         The  FASTOPEN  and  MODE programs that come with MS-DOS are TSR's
  1753.         and  as  such may be loaded into upper memory with HIGHTSR.  Once
  1754.         installed,  each  requires  very  little memory, something on the
  1755.         order  of  10k  or  less.  However, neither will install unless a
  1756.         lot  of  memory is available - approximately 50-90k.  (The actual
  1757.         requirement  depends  partly  on  command  line  options; you can
  1758.         determine the requirement using the /SIZE option of HIGHTSR.) 
  1759.  
  1760.                 ╔═════════════════════════════════════════════════╗
  1761.                 ║ WARNING: Do NOT use the /LOW option of HIGHTSR  ║ 
  1762.                 ║ with FASTOPEN or MODE - it won't work and could ║ 
  1763.                 ║ damage data on your disk!                       ║ 
  1764.                 ╚═════════════════════════════════════════════════╝
  1765.  
  1766.         The  worst  part  is  that  if  FASTOPEN  fails to install itself
  1767.         successfully,  it  doesn't  issue  any  error message - it simply
  1768.         doesn't   display   the   normal   "FASTOPEN  installed"  sign-on
  1769.         message.   Moral:  Let  FASTOPEN and MODE be the first TSR's that
  1770.         are  installed into High Memory in your AUTOEXEC.BAT file so that
  1771.         they get access to the maximum amount of memory.  
  1772.  
  1773.         The  second  hassle  with  these two TSR's is that they cannot be
  1774.         removed  by  using  the advanced utilities HIGHMARK and HIGHUNDO.
  1775.         Evidently  they modify memory other than that tracked by HIGHMARK
  1776.         (the interrupt vector table and that memory allocated to them).  
  1777.  
  1778.  
  1779.         8.2 Microsoft's SHARE program       
  1780.  
  1781.         MS-DOS  4  installs the SHARE program automatically if you have a
  1782.         hard  disk which is greater than 32 MB in a single partition.  It
  1783.         does  this  without  asking  because  it is otherwise possible to
  1784.         corrupt  the  data on the disk when running programs that use the
  1785.         old File Control Block (FCB) approach to access files.  
  1786.  
  1787.         Unfortunately,  some  internal parts of MS-DOS 4.0 also still use
  1788.         FCB's!   So  don't  try  to  prevent  SHARE  from being loaded by
  1789.         removing  it  from  your system!  If MS-DOS can't find it, you'll
  1790.         get  a  warning message during the boot saying that "SHARE should
  1791.         be   loaded   for   large  media".   You  could  load  it  during
  1792.         AUTOEXEC.BAT   processing,  but  you'll  still  get  the  warning
  1793.         because the check occurs during CONFIG.SYS processing.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1802.  
  1803.  
  1804.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              28
  1805.  
  1806.  
  1807.                 ┌─────────────────────────────────────────────────┐
  1808.                 │ NOTE: Version 5 of MS-DOS has corrected this    │ 
  1809.                 │ problem and no longer loads SHARE automatically │ 
  1810.                 │ regardless of the size of your hard disk.       │ 
  1811.                 └─────────────────────────────────────────────────┘ 
  1812.  
  1813.         So  how  can  you load this TSR into upper memory without getting
  1814.         the   warning?    MS-DOS   recently   introduced  the  "INSTALL="
  1815.         directive  that  allows  TSR's  to be installed during CONFIG.SYS
  1816.         processing.   Programs  that Microsoft suggests be loaded in this
  1817.         manner include FASTOPEN, KEYB, NLSFUNC, and SHARE.  For example: 
  1818.  
  1819.                 INSTALL=C:\DOS\SHARE.EXE 
  1820.  
  1821.         The  above  command,  however,  causes SHARE to be loaded down in
  1822.         conventional memory.  to get it into upper memory, use: 
  1823.  
  1824.                 INSTALL=C:\TLBMM\HIGHTSR.EXE C:\DOS\SHARE.EXE 
  1825.  
  1826.                 ╔═════════════════════════════════════════════════╗
  1827.                 ║ WARNING: Do NOT use the /LOW option of HIGHTSR  ║ 
  1828.                 ║ with SHARE - it won't work and could damage     ║ 
  1829.                 ║ data on your disk!                              ║ 
  1830.                 ╚═════════════════════════════════════════════════╝
  1831.  
  1832.  
  1833.         8.3 Microsoft's MS-DOS 5.0       
  1834.  
  1835.         With   the  introduction  of  MS-DOS  5.0,  Microsoft  has  added
  1836.         extensive  support  for  loading software into high memory.  This
  1837.         includes  not  only  device drivers and TSRs, but also the MS-DOS
  1838.         disk  buffers,  the master environment, and most of the operating
  1839.         system itself.  
  1840.  
  1841.         Most  of  this  capability  requires  the  use of an Upper Memory
  1842.         Block   (UMB)   provider   such   as   Key   Software   Products'
  1843.         HIGHUMM.SYS.   Although  the  MS-DOS  5.0  version  of EMM386 now
  1844.         provides  such  support, there are several disadvantages to using
  1845.         it  instead  of  The  Last  Byte  Memory Manager to load software
  1846.         high: 
  1847.  
  1848.              1.  EMM386   requires   a   386  or  better  processor.
  1849.                  (HIGHUMM does not.) 
  1850.  
  1851.              2.  EMM386  requires  that  HIMEM.SYS  be loaded first.
  1852.                  (HIGHUMM  does  not.  However, HIMEM is also needed
  1853.                  to  load  the operating system itself into extended
  1854.                  memory;  The Last Byte Memory Manager allows you to
  1855.                  load HIMEM into upper memory using HIGHDRVR.) 
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1862.  
  1863.  
  1864.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              29
  1865.  
  1866.  
  1867.              3.  Using  HIMEM and EMM386 as the basis of UMB support
  1868.                  requires  that  both  be  loaded  into conventional
  1869.                  memory.  
  1870.  
  1871.              4.  EMM386  puts  the  processor  into  protected mode,
  1872.                  adding  an  instruction  execution  time penalty of
  1873.                  about 5%.  
  1874.  
  1875.         There  are  two  basic  approaches  that  you  can  take  to load
  1876.         software  into  upper  memory  using MS-DOS 5.0 and The Last Byte
  1877.         Memory  Manager.   The  first  of these is to install HIGHUMM and
  1878.         use  the  'DEVICEHIGH'  and  'LOADHIGH'  commands  introduced  in
  1879.         MS-DOS 5.0; the other is to use HIGHDRVR and HIGHTSR.  
  1880.  
  1881.         We  recommend  the  latter  approach because HIGHDRVR and HIGHTSR
  1882.         provide  a  richer  set  of options for controlling the load high
  1883.         process.  
  1884.  
  1885.  
  1886.         8.3.1 Using DEVICEHIGH and LOADHIGH      
  1887.  
  1888.         To  use  this  approach,  your CONFIG.SYS file should contain the
  1889.         following lines: 
  1890.  
  1891.                 DOS=HIGH,UMB 
  1892.                 DEVICE=C:\TLBMM\LASTBYTE.SYS {and any options} 
  1893.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS 
  1894.                 DEVICE=C:\TLBMM\HIGHUMM.SYS {and any options} 
  1895.  
  1896.         Then  you can use the MS-DOS 5.0 DEVICEHIGH command in additional
  1897.         lines  of  your CONFIG.SYS file to load your other device drivers
  1898.         into upper memory, as in: 
  1899.  
  1900.                 DEVICEHIGH={device driver to be loaded high} 
  1901.                 DEVICEHIGH={device driver to be loaded high} 
  1902.                         . . .  
  1903.                 DEVICEHIGH={device driver to be loaded high} 
  1904.  
  1905.         With  this  CONFIG.SYS file, your AUTOEXEC.BAT file may load TSRs
  1906.         high using the MS-DOS 5.0 LOADHIGH command as in: 
  1907.  
  1908.                 LOADHIGH C:\DOS\PRINT 
  1909.  
  1910.  
  1911.         8.3.2 Using HIGHDRVR and HIGHTSR      
  1912.  
  1913.         The  second approach is to use the HIGHDRVR and HIGHTSR utilities
  1914.         of  The  Last  Byte  Memory Manager in the normal manner.  To use
  1915.         this  approach, your CONFIG.SYS file should contain the following
  1916.         lines: 
  1917.  
  1918.  
  1919.  
  1920.  
  1921.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1922.  
  1923.  
  1924.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              30
  1925.  
  1926.  
  1927.                 DOS=HIGH 
  1928.                 DEVICE=C:\TLBMM\LASTBYTE.SYS {and any options} 
  1929.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS 
  1930.  
  1931.         Then  you can use HIGHDRVR in additional lines of your CONFIG.SYS
  1932.         file to load your other device drivers into upper memory, as in: 
  1933.  
  1934.          DEVICE=C:\TLBMM\HIGHDRVR.SYS {device driver to be loaded high}
  1935.          DEVICE=C:\TLBMM\HIGHDRVR.SYS {device driver to be loaded high}
  1936.          DEVICE=C:\TLBMM\HIGHDRVR.SYS {device driver to be loaded high}
  1937.  
  1938.         With  this  CONFIG.SYS  file,  your AUTOEXEC.BAT file should load
  1939.         TSRs high using HIGHTSR as in: 
  1940.  
  1941.                           C:\TLBMM\HIGHTSR C:\DOS\PRINT
  1942.  
  1943.  
  1944.         8.4 Microsoft Windows        
  1945.  
  1946.         In  general,  The  Last  Byte Memory Manager has a high degree of
  1947.         compatibility  with  Windows  3.0  and  3.1.   If  you are having
  1948.         trouble  running  Windows,  first  be  sure  that  your system is
  1949.         properly  configured so that it runs without The Last Byte Memory
  1950.         Manager  installed.   If  you  have isolated the problem to their
  1951.         combination,  then perhaps the following information will help to
  1952.         correct the problem: 
  1953.  
  1954.  
  1955.         8.4.1 Modifying the Windows SYSTEM.INI File     
  1956.  
  1957.         With  Windows  running  in  386  enhanced  mode, LASTBYTE.SYS and
  1958.         Windows  will  both  try  to  use  the  upper  memory  area, thus
  1959.         creating  a  conflict.   To  avoid  the  conflict,  you  must ask
  1960.         Windows  to  not  use  this  region.  This can be done with a few
  1961.         configuration  options  in  the  [386Enh]  section of the Windows
  1962.         SYSTEM.INI file: 
  1963.  
  1964.                   EMMExclude=A000-FFFF
  1965.                   HighFloppyReads=no
  1966.                   DualDisplay=yes
  1967.                   SystemROMBreakPoint=no
  1968.  
  1969.         If  you  have  used the EXCLUDE option of LASTBYTE.SYS to disable
  1970.         any  region  of  the upper memory, then Windows may be told it is
  1971.         ok  to  use  that  area.   For example, if LASTBYTE.SYS is loaded
  1972.         using the line: 
  1973.  
  1974.                 DEVICE=C:\TLBMM\LASTBYTE.SYS EXCLUDE=D000:64 
  1975.  
  1976.         then  you may use the following configuration option (in addition
  1977.         to the EMMExclude option above) in your SYSTEM.INI file: 
  1978.  
  1979.  
  1980.  
  1981.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1982.  
  1983.  
  1984.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              31
  1985.  
  1986.  
  1987.  
  1988.                 EMMInclude=D000-DFFF 
  1989.  
  1990.         The  EMMInclude  option  will take precedence over the EMMExclude
  1991.         option when the two overlap, as above.  
  1992.  
  1993.  
  1994.         8.4.2 Positioning an EMS Page Frame     
  1995.  
  1996.         If  you  are using the Real or Standard modes of Windows, you may
  1997.         have  installed  an EMS device driver for those applications that
  1998.         need  expanded  memory.  In an attempt to reduce fragmentation of
  1999.         upper  memory, it is useful to position the EMS Page Frame either
  2000.         at  the  bottom  or  top  of  an  otherwise empty region of upper
  2001.         memory.   However,  if  you  have  used the DOS=F000:32 option to
  2002.         gain  another  32k  of  DOS  memory, don't position your EMS Page
  2003.         Frame  at  E800  -  Windows  will not run with it any higher than
  2004.         E000.  
  2005.  
  2006.         The  Enhanced  386  mode  of  Windows  will automatically emulate
  2007.         expanded   memory   for   those  applications  that  require  it.
  2008.         Unfortunately,   Windows   ignores   the  EMMExclude  option  and
  2009.         positions  the  EMS  page frame in upper memory.  If the same 64k
  2010.         area  is used by The Last Byte Memory Manager for something else,
  2011.         your   system   may   hang.   To  correct  the  problem,  add  an
  2012.         "EMSPageFrame=nnnn"  option  in  your  SYSTEM.INI  file  to  tell
  2013.         Windows   where   to   put  the  page  frame,  combined  with  an
  2014.         "EXCLUDE=nnnn:64"  option  on  the  LASTBYTE.SYS  command line to
  2015.         keep it from using this area.  
  2016.  
  2017.  
  2018.         8.4.3 "Unsupported Data Configuration"       
  2019.  
  2020.         The  386 Enhanced mode of Windows 3.0 (not 3.1) has a restriction
  2021.         that  it  cannot  run  when  certain  types of software have been
  2022.         loaded  high.   When  this  happens,  Windows  will terminate and
  2023.         display  the  error  message,  "Unsupported  Data Configuration".
  2024.         This  only  happens  in  386 Enhanced mode, and is not related in
  2025.         particular to use of The Last Byte Memory Manager.  
  2026.  
  2027.         Device  drivers  that are known to load high without this problem
  2028.         include  HIMEM.SYS,  MOUSE.SYS, SETVER.SYS, ANSI.SYS, and all the
  2029.         Key  Software Products device drivers.  A device driver and a TSR
  2030.         known  to  cause this problem are EGA.SYS and DOSKEY.COM.  If you
  2031.         are  experiencing  this error message, you can either run Windows
  2032.         in   another   mode,   or   try  modifying  your  CONFIG.SYS  and
  2033.         AUTOEXEC.BAT files to locate and remove the offending software.  
  2034.  
  2035.         Microsoft   has  removed  this  restriction  in  version  3.1  of
  2036.         Windows.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2042.  
  2043.  
  2044.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              32
  2045.  
  2046.  
  2047.  
  2048.         8.4.4 HIGHMEM and Windows 386 Enhanced Mode    
  2049.  
  2050.         MS-DOS  applications  run from inside Windows 3.0 are given their
  2051.         own   "virtual"   address  space  of  640k.   Windows  tells  the
  2052.         processor   to  map  memory  references  in  this  space  to  the
  2053.         particular  640k  of  physical memory which has been allocated to
  2054.         the  application.   References  outside this range are considered
  2055.         invalid  and  thus  return  garbage.   Since HIGHMEM is a program
  2056.         that  inspects  upper  memory  between 640k and 1 meg, there's no
  2057.         way  it  can  execute  properly  in  this  context.  HIGHMEM will
  2058.         behave normally outside of Windows.  
  2059.  
  2060.  
  2061.         8.5 HyperWare's HyperDisk        
  2062.  
  2063.         HyperDisk  is  a  shareware disk caching utility.  If you use its
  2064.         "XS"  option  to load itself into the 48k block starting at E400,
  2065.         be  sure  to  exclude  this area by using the following option on
  2066.         the LASTBYTE.SYS command line: 
  2067.  
  2068.                 DEVICE=C:\TLBMM\LASTBYTE.SYS EXC=E400:48 
  2069.  
  2070.         A  better  approach  is  to  use  either  HIGHDRVR or HIGHTSR (as
  2071.         appropriate)  to  load  HyperDisk  high (without HyperDisk's "XS"
  2072.         option).   This  method  guarantees  that  the  minimum amount of
  2073.         upper memory will be used.  
  2074.  
  2075.         HyperDisk  can  be  downloaded  from  HyperWare's  BBS  at  (415)
  2076.         882-1735 or obtained directly from: 
  2077.  
  2078.                 FOLEY HI-TECH SYSTEMS           CompuServe: 70262,1763 
  2079.                 172 Amber Drive                 Phone: (415) 826-6084 
  2080.                 San Francisco, CA 94131         FAX: (415) 882-1733 
  2081.  
  2082.  
  2083.         8.6 J.P. Software's 4DOS       
  2084.  
  2085.         4DOS  is  a  shareware  replacement for COMMAND.COM.  HIGHUMM.SYS
  2086.         may  be  used  to  move the 4DOS command processor and its master
  2087.         environment  into  "Upper  Memory  Blocks"  (UMB's)  in the upper
  2088.         memory  area,  thus  reducing  the  amount of conventional memory
  2089.         below 640k used by 4DOS from 3.4k bytes to 256 bytes.  
  2090.  
  2091.         First  you  must install HIGHUMM.SYS as described earlier in this
  2092.         manual.   Then  add  a  "SHELL="  line  to  CONFIG.SYS  for 4DOS,
  2093.         including  the  options  /U (to place the command processor in an
  2094.         UMB)  and  /E:512U  (to  place the master environment in an UMB).
  2095.         The  value  512  is of course only an example - other environment
  2096.         sizes  may  be  specified.   You  may  also want to specify these
  2097.         options   for   secondary   shells  in  the  4DSHELL  environment
  2098.  
  2099.  
  2100.  
  2101.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2102.  
  2103.  
  2104.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              33
  2105.  
  2106.  
  2107.         variable.  Consult the 4DOS documentation for further details.  
  2108.  
  2109.         4DOS  may  be downloaded from Channel 1 BBS at (617) 354-8873, or
  2110.         obtained directly from: 
  2111.  
  2112.                 J.P. Software             CompuServe: 75300,210 
  2113.                 P.O. Box 1470             BIX: "trawson" 
  2114.                 E. Arlington, MA 02174    Internet, Bitnet, etc: 
  2115.                 Voice: (617) 646-3975       75300.210@compuserve.com 
  2116.                 Fax: (617) 646-0904 
  2117.  
  2118.  
  2119.         8.7 David Hamilton's BUFFIT       
  2120.  
  2121.         There's  a very nice shareware scroll-back TSR called BUFFIT that
  2122.         saves  lines  of  text that have been scrolled off the top of the
  2123.         screen  and allows you to pull them back down for review.  One of
  2124.         the  advantages  of  version  3.0  and later of BUFFIT is that it
  2125.         will  load  itself  entirely  into a UMB provided by HIGHUMM.SYS,
  2126.         thus using no conventional memory at all.  
  2127.  
  2128.         To  install  BUFFIT into upper memory, first you must install the
  2129.         HIGHUMM.SYS  device  driver  by  inserting the following lines in
  2130.         your CONFIG.SYS file: 
  2131.  
  2132.                 DEVICE=C:\TLBMM\LASTBYTE.SYS {and any LASTBYTE options} 
  2133.                 DEVICE=C:\TLBMM\HIGHUMM.SYS 
  2134.  
  2135.         Then  all  you  have to do is reboot your computer and run BUFFIT
  2136.         from  the  command  line,  or  else  add  it to your AUTOEXEC.BAT
  2137.         file.  
  2138.  
  2139.         BUFFIT  is  available  from  a number of BBS's, usually under the
  2140.         filename BUFFIT30.ZIP.  
  2141.  
  2142.  
  2143.         8.8 Charles Lazo's WAS       
  2144.  
  2145.         On  a  computer  with  no  expanded memory, you might want to use
  2146.         HIGHEMS3  to  provide  some  Expanded  Memory  for Charles Lazo's
  2147.         scroll-back  TSR, WAS.COM.  This utility saves lines of text that
  2148.         have  been  scrolled  off the top of the screen and allows you to
  2149.         pull  them  back down for review.  WAS is available from a number
  2150.         of BBS's, usually under the filename WAS062.ZIP.  
  2151.  
  2152.  
  2153.         8.9 Philip Gardner's DOSMAX       
  2154.  
  2155.         DOSMAX  is  a  set  of  utilities  that  compliment The Last Byte
  2156.         Memory  Manager  by moving all of the DOS "subsegments" (BUFFERS,
  2157.         FILES,  FCBS,  LASTDRIVE, STACKS, etc.), COMMAND.COM, and the DOS
  2158.  
  2159.  
  2160.  
  2161.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2162.  
  2163.  
  2164.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              34
  2165.  
  2166.  
  2167.         kernel  into  Upper  Memory  Blocks  provided by HIGHUMM.  Set up
  2168.         your CONFIG.SYS file as follows: 
  2169.  
  2170.              DOS=HIGH
  2171.              DEVICE=C:\DOSMAX\STOPMAX.SYS
  2172.              DEVICE=C:\TLBMM\LASTBYTE.SYS
  2173.              DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS
  2174.              DEVICE=C:\TLBMM\HIGHUMM.SYS /REPLACE
  2175.              DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOSMAX\DOSMAX.EXE /C:+ /P:-
  2176.              SHELL=C:\DOSMAX\SHELLMAX.COM C:\DOS\COMMAND.COM C:\DOS\ /E:512 /P
  2177.  
  2178.         If  you  wish,  you  can  eliminate  the  use  of  STOPMAX.SYS by
  2179.         appending the /I+ or /B+ option to the DOSMAX.EXE command line.  
  2180.  
  2181.         Using     the     full     pathname    of    DOSMAX.EXE    (i.e.,
  2182.         C:\DOSMAX\DOSMAX.EXE)  is very important.  The resident stub must
  2183.         be  able to exec DOSMAX.EXE at the proper time, and this requires
  2184.         the full path to DOSMAX.EXE.  
  2185.  
  2186.         The  latest  version  of  DOSMAX  may  be downloaded from the Key
  2187.         Software Products bulletin board.  
  2188.  
  2189.  
  2190.         8.9.1 Trashed Floppy Diskettes       
  2191.  
  2192.         Under  certain circumstances, the combination of TLBMM and DOSMAX
  2193.         can  cause  data  on  floppy  diskettes  to  be  trashed.  If you
  2194.         experience  this problem, it is probably because DOSMAX has moved
  2195.         the  DOS  "Work  Buffer"  into  a 128k region of the Upper Memory
  2196.         Area  (640k-1meg)  in  which a 16-bit adapter is installed.  (See
  2197.         the  discussion  about  DMA in the section on the RESTRICT option
  2198.         of LASTBYTE.SYS that appears earlier in this document.) 
  2199.  
  2200.         The  solution  is  to  simply  add  the  "/WKBUFFER=0"  option to
  2201.         DOSMAX: 
  2202.  
  2203.                 DEVICE=DOSMAX.EXE /P:- /WKBUFFER=0 
  2204.  
  2205.         This prevents DOSMAX from moving the work buffer into the UMA.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2222.  
  2223.  
  2224.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              35
  2225.  
  2226.  
  2227.                         APPENDIX 1 - HOW TO REACH US     
  2228.  
  2229.  
  2230.         The  Key  Software Products telephone (415-364-9847) is shared by
  2231.         our  BBS,  FAX,  and  voice  mail  answering system.  Approximate
  2232.         hours of operation are: 
  2233.  
  2234.                   Voice mail and FAX: 8am - 5pm PST (weekdays)
  2235.                  BBS system: 5pm - 8am PST (24 hrs on weekends)
  2236.            BBS Parameters: 1200/2400/9600/14400 baud (v.32bis/v.42bis)
  2237.                              8 data bits, No Parity
  2238.  
  2239.         If  your call is answered by the voice mail system, it can take a
  2240.         message   that will be automatically forwarded to someone who can
  2241.         return  your  call as soon as possible.  In addition, it offers a
  2242.         touch-tone driven menu of useful information about our product.  
  2243.  
  2244.         To send us a FAX, follow the following steps: 
  2245.  
  2246.              Step 1:  You'll  be  greeted  by  our Voice Mail system
  2247.                       which  will  prompt you to press 1 if you have
  2248.                       a touch-tone phone.  
  2249.  
  2250.              Step 2:  Press 1.  You'll then hear a menu that prompts
  2251.                       you to press 5 to send a FAX.  
  2252.  
  2253.              Step 3:  Press  5.  In a few seconds, you'll hear a FAX
  2254.                       tone; press start on your FAX machine.  
  2255.  
  2256.         That's  all  there  is to it.  Be sure to include your FAX number
  2257.         for  the  reply  which  will  be  sent  back to you in one or two
  2258.         days.  
  2259.  
  2260.         If  you have access to electronic mail, you can send us a message
  2261.         via any of the following: 
  2262.  
  2263.         On COMPUSERVE, send mail to:
  2264.  
  2265.                 >Internet:tech.support@ksp.com
  2266.  
  2267.         On PRODIGY, send mail to: VGDC59A
  2268.  
  2269.         On INTERNET, UUCP, or BITNET, send mail to:
  2270.  
  2271.                 tech.support@ksp.com
  2272.  
  2273.         On FIDONET, address mail to "UUCP" at nearest fidonet site which
  2274.         provides a gateway to Internet, such as 1:105/42.
  2275.  
  2276.                 1st line of message: To: tech.support@ksp.com
  2277.  
  2278.  
  2279.  
  2280.  
  2281.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2282.  
  2283.  
  2284.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              36
  2285.  
  2286.  
  2287.         On MCI,
  2288.  
  2289.                  At the "To:" prompt enter: TECH SUPPORT (EMS)
  2290.                 At the "EMS:" prompt enter: Internet
  2291.                 At the "Mbx:" prompt enter: tech.support@ksp.com
  2292.  
  2293.         On APPLELINK, send mail to:
  2294.  
  2295.                 tech.support@ksp.com@dasnet#
  2296.  
  2297.         On TELENET's Telemail Service:
  2298.  
  2299.                 Send to: [INTERMAIL/USCISI]TELEMAIL/USA
  2300.                 1st line of message: Forward: ARPA
  2301.                 2nd line of message: To: tech.support@ksp.com
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325.  
  2326.  
  2327.  
  2328.  
  2329.  
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2342.  
  2343.  
  2344.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              37
  2345.  
  2346.  
  2347.                       APPENDIX 2 - ACKNOWLEDGEMENTS        
  2348.  
  2349.  
  2350.         The  Last  Byte  Memory  Manager  wouldn't  exist without all the
  2351.         companies  that  manufacture  the  shadow  ram  memory controller
  2352.         chips,  and  who  have  provided techinical information on how to
  2353.         program  their  configuration registers.  If you know of a memory
  2354.         controller  chip  we  haven't included, please let us know and we
  2355.         will try to add it.  
  2356.  
  2357.         The  Last  Byte  Memory  Manager consists of almost a megabyte of
  2358.         source  code,  written  mostly in C with a sprinkling of assembly
  2359.         language,  and  compiled using version 3.1 of the DeSmet/C-Ware C
  2360.         compiler.   We  are grateful for the simplicity, flexibility, and
  2361.         speed  of this compiler, as well as the generous support provided
  2362.         by Joel and Susan Farley of C-Ware Corporation.  
  2363.  
  2364.         The  Last Byte Memory Manager could not have been created without
  2365.         the  gracious  support  of  many  people.   We  wish to thank the
  2366.         following  individuals  who  helped  to  test  beta  versions  or
  2367.         offered  useful  suggestions  for  new  features: Ron Cohen, J.B.
  2368.         Compton,  David  Durgee,  Philip  Gardner,  Mike  Hagerty,  Scott
  2369.         Jordahl,  Alan  Lambert,  Rob  Nee,  Kevin  Parris,  Dan Proctor,
  2370.         Graham  Robertson,  Ken  Sanquist,  Tony  Sheehan, Peter Summers,
  2371.         Steve  Hodsdon, Anthony Cox, My Phung, Martin Beckmann, and Prof.
  2372.         Timo Salmi (of the University of Vaasa, Finland).  
  2373.  
  2374.         Thank's  also  go to Tom Rawson of J. P. Software for providing a
  2375.         copy  of  4DOS, to Sue Nageotte of Digital Research for providing
  2376.         a  copy  of  DR  DOS,  to  Philip Gardner for providing a copy of
  2377.         DOSMAX,  and  to  Pat  Gelsinger of Intel Corporation for lending
  2378.         his  intimate  knowledge  of  the  80x86  instruction  sets.  And
  2379.         finally,  a  special  thanks  to  Serge  Caron,  Roger Cross, and
  2380.         Philip   Gardner   for   their   suggestions,  technical  advice,
  2381.         patience, and friendship.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2402.  
  2403.  
  2404.         Nov 06, 1993    THE LAST BYTE MEMORY MANAGER (tm)              38
  2405.  
  2406.  
  2407.                       APPENDIX 3 - LIMITED WARRANTY       
  2408.  
  2409.  
  2410.         This  software  is provided 'as is' without warranty of any kind,
  2411.         either  expressed  or  implied, including, but not limited to the
  2412.         implied   warranties   of   merchantability  and  fitness  for  a
  2413.         particular  purpose.   The  entire  risk  as  to  the quality and
  2414.         performance of the program is with you.  
  2415.  
  2416.         Some  states do not allow the exclusion of implied warranties, so
  2417.         the  above  exclusions may not apply to you.  This warranty gives
  2418.         you  specific  legal  rights  and  you may also have other rights
  2419.         which vary from state to state.  
  2420.  
  2421.         Key  Software  Products  has  taken  due  care  in  preparing the
  2422.         documentation  and  software  included  in  The  Last Byte Memory
  2423.         Manager   to   ascertain  their  correctness  and  effectiveness.
  2424.         However,  Key  Software  Products does not warrant that operation
  2425.         of  this  software  will  be  uninterrupted or error free.  In no
  2426.         event  shall  Key  Software  Products be liable for incidental or
  2427.         consequential  damages  in  connection with or arising out of the
  2428.         furnishing, performance, or use of this software.  
  2429.  
  2430.  
  2431.                                      LICENSE
  2432.  
  2433.         You  MAY  use  this software on any computer or computers in your
  2434.         possession, but on no more than one computer at any given time.  
  2435.  
  2436.         You  MAY  copy this software into any machine readable or printed
  2437.         form  for  backup or modification purposes in support of your use
  2438.         of the software.  
  2439.  
  2440.         You  MAY  distribute  the original unmodified, unlicensed version
  2441.         of  this  software,  but you may not charge a fee exceeding $5.00
  2442.         to  cover  the  cost of duplicating, shipping, and handling.  You
  2443.         may NOT distribute a licensed version of this software.  
  2444.  
  2445.         You  may  NOT  use,  copy, modify, sublicense, assign or transfer
  2446.         this  software  and  its license, or any copy or modification, in
  2447.         whole  or  in  part,  except  as  expressly  provided for in this
  2448.         license.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2462.  
  2463.